package com.designPattern.bridge.connection.driver;

import com.designPattern.bridge.connection.Connection;

/**
 * 【桥接模式】
 * 桥接模式完成的任务是：【一个抽象的对象想要完成对一种行为】
 * 桥接模式的完成方法：抽象对象聚合【桥接了】行为，就可以完成对行为的具体方法的实现
 *
 * 在下面模拟获取jdbc获取连接
 * Driver相当于是一个连接数据库的标准，依赖Connection,通过实现getConnection()方法,完成了对Connection的获取，
 * Connection是被使用的类，完成了获取连接后的操作
 * DriverManager相当于是使用者,通过获取获取驱动【桥接了Driver类】，然后调用Driver中的getConnection()完成获取数据库连接对象
 * 通过获取Driver驱动，获得了连接数据库getConnection()的方式
 * 只要更换驱动就可以获取不同数据库的连接，拓展性非常好
 * @author mxs
 */
public class DriverManager {
    private static Driver drivers = null;
    private static Connection connection = null;
    //调用的驱动中的 getConnection()方法
    public static Connection getConnection(){
        return drivers.getConnection();
    }
    //获取驱动，在这里相当于是完成了桥接过程
    public static void register(Driver driver){
        drivers = driver;
    }
}
